#pragma once

#include <list>
#include "IObject.h"

namespace Pathing
{
	class Vehicle : public IObject
	{
	public:
		Vehicle();
		Vehicle( const Maths::Vector3D& position, const Maths::Vector3D& destination );
		const Maths::Vector3D Destination() const;
		void Direction( Maths::Vector3D& direction );
		void Destination( const Maths::Vector3D& destination );
		std::list<Maths::Vector3D>& Path();
		const Maths::Vector3D PeekPathingPoint() const;
		const Maths::Vector3D PopPathingPoint();
		bool& Sleeping();
	protected:
		bool m_sleeping;
		Maths::Vector3D m_destination;
		Maths::Vector3D m_currentDestination;
		std::list<Maths::Vector3D> m_path;
	};
};